/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.tesis2.pucp.Envio.Controlador;

import com.tesis2.pucp.Envio.DAO.PedidoDAO;
import com.tesis2.pucp.Envio.DAO.ProductoDAO;
import com.tesis2.pucp.Envio.Vista.BuscarPedidoGUI;
import com.tesis2.pucp.Envio.Vista.BuscarProductosGUI;
import com.tesis2.pucp.Envio.Vista.PedidoGUI;
import com.tesis2.pucp.Envio.Vista.ProductosGUI;
import com.tesis2.pucp.Modelo.TesisPedido;
import com.tesis2.pucp.Modelo.TesisProducto;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;


/**
 *
 * @author jorge
 */
public class BuscarPedidoControlador {
    private PedidoDAO m;
    private BuscarPedidoGUI buscarPedidoView;
    private ArrayList<TesisPedido> lstPedidos;
    private ArrayList<String> lstEstado;
        
    public BuscarPedidoControlador(PedidoDAO dao, BuscarPedidoGUI v){
        m = dao;
        buscarPedidoView = v;
       
        buscarPedidoView.addBuscarListener(new listarProductos() );
        buscarPedidoView.addEditarListener(new editarProductoListener(this));
        buscarPedidoView.addNuevoListener(new crearPedidoListener(this));
        buscarPedidoView.addLimpiarListener(new limpiarListener());
        
    }

    public void listarResultados(){
        lstPedidos = m.listarPedidos();
        buscarPedidoView.llenaGrilla(lstPedidos);        
    }
    
    class listarProductos implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e) {
            listarResultados();
        }
    }
        
    class crearPedidoListener implements ActionListener {
        
        private BuscarPedidoControlador buc;
        public crearPedidoListener(BuscarPedidoControlador buscarpedido){
            buc=buscarpedido;
        }
                
        @Override
        public void actionPerformed(ActionEvent e) {
            PedidoGUI p = new PedidoGUI(buscarPedidoView.getPadre(), true);
            PedidoControlador c = new PedidoControlador(m,p,buc,null,null, null);
            p.setVisible(true);
        }
    
    }    
    
    class editarProductoListener implements ActionListener {
        
        private BuscarPedidoControlador buc;
        public editarProductoListener(BuscarPedidoControlador buscarpedido){
            buc=buscarpedido;
        }
        @Override
        public void actionPerformed(ActionEvent e) {            
            int sel=buscarPedidoView.getFilaSel();
            if (sel!=-1){
                PedidoGUI p = new PedidoGUI(buscarPedidoView.getPadre(), true);
                TesisPedido u = lstPedidos.get(sel);                
                PedidoControlador c = new PedidoControlador(m,p,buc,u, null, null);
                p.setVisible(true);                
            }
        }
    
    } 
        
    class limpiarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            buscarPedidoView.LimpiarDatos();
        }        
    }    
    
    class eliminarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=buscarPedidoView.getFilaSel();
            if (sel!=-1){
                if (buscarPedidoView.solicitarConfirmacion("¿Desea inactivar este producto?")==0){
                    TesisPedido u = lstPedidos.get(sel); 
                    //u.setEstado(ESTADO_INACTIVO);
                    m.guardarPedido(u, null, null);//Inactivar
                    buscarPedidoView.mostrarAviso("Se inactivó el producto con éxito");
                    listarResultados();
                }
            }
            else{
                buscarPedidoView.mostrarError("Debe seleccionar un producto");
            }
        }        
    }       
    
    class activarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=buscarPedidoView.getFilaSel();
            if (sel!=-1){
                if (buscarPedidoView.solicitarConfirmacion("¿Desea reactivar este producto?")==0){                
                    TesisPedido u = lstPedidos.get(sel);
                    //u.setEstado(ESTADO_ACTIVO);
                    m.guardarPedido(null, null, null);
                    buscarPedidoView.mostrarAviso("Se reactivó el producto con éxito");
                    listarResultados();
                }
            }
            else{
             buscarPedidoView.mostrarError("Debe seleccionar un producto");   
            }               
        }        
    }       
}
